<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Object.defineProperty</title>
</head>
<!-- 
     数据代理：通过一个对象代理对另一个对象中属性的操作 读/写

 -->

<body>
    <script>
        // let person = {
        //     name: "张三",
        //     age: 19,
        //     sex: "男"
        // }
        // Object.defineProperty(person, 'address', {
        //     value: '北京',
        //     enumerable: true, //控制属性是否可以枚举 默认值是false
        //     writable: true, //控制属性是否可以被修改 默认是false
        //     configurable: true, //控制属性是否可以被删除 默认是false
        // })
        // console.log(person);



        // 数据代理
        let obj = {
            x: 100
        };
        let obj2 = {
            y: 200
        }

        Object.defineProperty(obj2, 'x', {
            get() {
                return obj.x;
            },
            set(value) {
                obj.x = value;
            }
        })
    </script>
</body>

</html>